package service;

import java.util.List;
import java.util.Map;

import dao.NoteDAO;
import domain.Note;

/**
 * 笔记Service接口.
 * <p>
 * 创建日期：2010-07-01<br>
 * 创建人：Xiyt<br>
 * 修改日期：<br>
 * 修改人：<br>
 * 修改内容：<br>
 * 
 * @author Xiyt
 * @version 1.0
 */
public interface NoteService {

	/**
	 * 设定日记DAO
	 * */
	public void setNoteDao(NoteDAO noteDao);

	/**
	 * 根据日记ID查询日记信息
	 * @param noteId 日记ID
	 * @return Note 日记
	 */
	public Note selectByPrimaryKey(int noteId);

	/**
	 * 根据条件查询日记数量
	 * @param paramNote 日记
	 * @return int 日记数量
	 */
	public int countByCriteria(Note paramNote);

	/**
	 * 根据条件查询日记列表带分页
	 * @param paramNote 日记
	 */
	public List<Note> selectByCriteria(Note paramNote);

	/**
	 * 根据条件查询日记列表带分页
	 * @param paramNote 日记
	 */
	public List<Note> selectByCriteriaForPaging(Note paramNote);
	

	/**
	 * 保存日记
	 * @param map 日记
	 */
	@SuppressWarnings("unchecked")
	public void save(Map map) throws Exception;

	/**
	 * 添加日记
	 * @param note 日记
	 */
	public void insert(Note note);

	/**
	 * 修改日记
	 * @param note 日记
	 */
	public void update(Note note);

	/**
	 * 删除日记
	 * @param noteIds 日记ID
	 */
	public void deleteNote(String noteIds);

	/**
	 * 还原已删除日记
	 * @param noteIds 日记ID
	 */
	public void returnNote(String noteIds);

	/**
	 * 移动日记
	 * @param noteIds 日记ID
	 * @param categoryId 分类ID
	 */
	public void moveNote(String noteIds, String categoryId);

	/**
	 * 删除日记
	 * @param noteIds 日记ID
	 */
	public void deleteByNoteIds(String noteIds);

	/**
	 * 发送日记
	 * @param noteId 日记ID
	 * @param emails 邮箱地址
	 */
	public boolean sendEmail(String noteId, String emails) throws Exception;
}
